Events
Chat Events
It's possible to handle several events from SDK:
- UnreadMessagesCount
 - ChatView
 - ChatClose
 - ProfessionalProfileView
 - ChatMessageSent
 - ChatMessageReceived
 
Events Implementing
UnreadMessagesCount can be captured calling it from Professionallist Sdk's component:
professionalList.setProfessionalListListener(object: ProfessionalList.ProfessionalListListener {
...
    override fun onUnreadMessageCountChange(unreadMessageCount: Long) {
        //Do your stuff
        // note: 'unreadmessageCount' parameter means the total amount of user's unread messages
    }
})
ChatView, ChatClose , ProfesisonalProfileView, ChatMessageSent and ChatMessageReceived events are captured via BroadcastReceiver. Each event has its own properties, the Intent of the BroadcastReceiver contains them:
- 
ChatMessageSent & ChatMessageReceived Intent bundle properties: "eventType", "roomId", "professionalHash", "speciality", "messageType", "messageId" & "message".
 - 
ProfessionalProfileView Intent bundle properties: "eventType", "professionalHash", "speciality".
 - 
ChatView Intent bundle properties: "eventType", "roomId", "professionalHash", "speciality".
 - 
ChatClose Intent bundle properties: "eventType".
 
// 1. Create your broadcast receiver
    class EventAppBroadcastReceiver : BroadcastReceiver() {
        var eventProperties: Bundle? = null
    
        override fun onReceive(context: Context?, intent: Intent) {
            // Capturing bundle from the intent
            eventProperties = intent.extras
            
            //e.g Show a toast message with info related to event 'ChatMessageReceived' by the professional
            Toast.makeText(context, "Chat event type: ${eventProperties?.getString("eventType")} " +
                    "${eventProperties?.getString("speciality")} " +
                    "${eventProperties?.getString("messageType")} " +
                    "${eventProperties?.getString("message")}", Toast.LENGTH_LONG).show()
        }
    }
    
// 2. Declare your BroadcastReceiver on your Activity
val eventAppBroadCastReceiver: BroadcastReceiver = EventAppBroadcastReceiver()
// 3. Register your BroadcastReceiver, e.g. on your OnResume() method
LocalBroadcastManager.getInstance(this).registerReceiver(eventAppBroadCastReceiver,
            IntentFilter(getString(R.string.meetingdoctors_local_broadcast_chat_events)))
// Optional. If its needed to stop capturing events, unregister your Broadcastreceiver, e.g. on your OnPause() method
        LocalBroadcastManager.getInstance(this).unregisterReceiver(eventAppBroadCastReceiver)